草庐IT

java outOfMemoryError 与 stringbuilder

全部标签

c# - 字符串与 StringBuilder

我理解String和StringBuilder之间的区别(StringBuilder是可变的)但是两者之间有很大的性能差异吗?我正在处理的程序有很多大小写驱动的字符串追加(500+)。使用StringBuilder是更好的选择吗? 最佳答案 是的,性能差异很大。请参阅知识库文章“HowtoimprovestringconcatenationperformanceinVisualC#”。我总是尝试先编写代码以确保清晰度,然后再针对性能进行优化。这比反过来做要容易得多!但是,在看到我的应用程序在两者之间存在巨大的性能差异后,我现在更仔细

java - StringBuilder - 重置或创建一个新的

我有一个条件,即StringBuilder不断存储与大型平面文件(100MB)中的模式匹配的行。但是,在达到条件后,我将StringBuilder变量的内容写入文本文件。现在我想知道我是否应该通过重置对象来使用相同的变量->stringBuilder.delete(0,stringBuilder.length())或stringBuilder=newStringBuilder();请就性能和OOM问题提出您认为哪个更好。 最佳答案 我认为StringBuilder#delete(start,end)仍然是昂贵的调用,你应该这样做:s

c# - 使用 StringBuilder 编写 XML 可以吗?

感觉很脏。但也许不是……可以使用StringBuilder来编写XML吗?我的直觉说“虽然这感觉不对,但它的性能可能相当不错,因为它没有加载额外的库和开销它没有执行XmlWriter调用的任何额外方法调用。”它也似乎只是一般的代码较少。XmlWriter有什么好处?这是它的样子。我正在根据您来自的域构建一个OpenSearchXML文档。publicvoidProcessRequest(HttpContextcontext){context.Response.ContentType="text/xml";stringdomain=WebUtils.ReturnParsedSourceU

java - 在java中将字符串转换为stringBuilder

我有一个返回字符串的方法,但我想要StringBuilder方法中的数据并将其转换为字符串,那么我该怎么做呢?publicString[][]getDataOfJD(ListjdFields){inti=0;String[][]data=newString[jdFields.size()][];for(JobDescriptionFieldfield:jdFields){if(i>0){Stringmessages="";for(Stringmessage:field.getMessages()){messages+=message;}data[i]=newString[]{field

C#(四十)之stringBuilder类

使用StringBuilder需引用命名空间usingSystem.Text;String类与StringBuilder类的区别:string是各位用的最多的类型之一,是一个特殊的引用类型,直接派生于Object,因此它的值储存在托管堆上。构造一个新字符串的时候,不需要用new。它是”不可变的“。初始化字符串对象后,该字符串对象的长度、内容都是确定不变的了。如果修改这个字符,内存会重新开辟一个空间来存储新的字符,旧的字符等待垃圾回收,这样相对消耗资源。因为string的”不可变“,导致多次修改字符串的时候会损耗性能,那么这个时候StringBuilder的作用就来了。StringBuilder

android - SAX、StringBuilder 和内存泄漏

我有一个奇怪的问题。我正在解析带有大文本字段的文档。在我的角色部分,我使用的是StringBuildercurrentStory.append(ch,start,length);然后在我的endElement中,我将它分配给对象上的适当字段。if(name.equals(tagDesc)){inDesc=false;if(currentItem!=null){currentItem.setSummaryText(currentStory.toString());}currentStory.setLength(0);}setSummaryText(Stringtext)方法是:publi

java - StringBuilder.toString 是否保留构建的字符串?

我正在创建一个StringBuilder来收集我定期刷新到服务器的字符串。如果刷新失败,我想保留这些字符串以便下次重试,尽管与此同时我可能会收到其他要发送的字符串,这些字符串必须添加到StringBuilder。我想知道最有效的方法是什么,因为这是在Android应用程序中完成的,电池使用率和CPU使用率是一个大问题。调用StringBuilder的toString()函数是否存储它在内部返回的结果字符串,以便后续调用不必执行复制所有原始字符串的工作?或者如果调用失败,我是否应该创建一个新的StringBuilder并使用toString()的返回值进行初始化?

java - 如何最好地将 StringBuilder 转换为 String[]?

下面的代码可以工作,但固定了String[]中的元素数量。有没有办法让String[]动态添加所需的元素数量?privatestaticStringBuildernames=newStringBuilder();...publicString[]getNames(){intstart=0;intend=0;inti=0;String[]nameArray={"","","",""};while(-1!=end){end=names.indexOf(TAB,start);nameArray[i++]=names.substring(start,end);start=++end;//The

android - 使用 StringBuilder 追加

我有5个复选框,我必须选择多个复选框。我编写了这样的代码来检查复选框是否被选中:sports=(CheckBox)findViewById(R.id.sports_btn);sports.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){if(sports.isChecked()==true)list.add("4");}});我正在向数组列表中添加一个值:listArrayListlist=newArrayList();我正在检索字符串形式的值,如下所示:StringBuildersb=

Android:内存不足错误StringBuilder

在我的应用程序中,我以JSON的形式从服务器获取数据。数据约为1.5MB。该应用程序可以正常工作,但有时会在从服务器获取数据时崩溃,出现OutOfMemoryError。这是我的方法:privateStringsendPostRequest(Stringurl,Listparams)throwsException{Stringret=null;BufferedReaderbufferedReader=null;HttpClienthttpClient=newDefaultHttpClient();HttpPostrequest=newHttpPost(url);try{UrlEncod